package com.xianyun.book.domain.gateway;

import com.xianyun.book.domain.book.Book;
import com.xianyun.book.domain.book.BookType;
import com.xianyun.book.domain.order.SalesOrder;
import java.util.List;

/**
 * 书籍领域网关
 * @author ytt
 */
public interface BookGateway {
    /**
     * 更新书籍
     * @param book
     */
    void updateBook(Book book);

    /**
     * 刷新书籍详情交易事件 特有订单方法
     * @param salesOrder 销售详情
     * @return 结果
     */
    void refreshBook(SalesOrder salesOrder);


    /**
     * 保存书籍
     * @param book 书籍详情
     * @return 结果
     */
    void save(Book book);

    /**
     * 推荐补全
     * @param searchKey
     * @return
     */
    List<String> bookSearchCompletion(String searchKey);

    /**
     * 根据ISBN码获取书籍信息
     * @param isbn isbn码
     * @return 书籍信息
     */
    Book saveOrQueryBookByIsbn(String isbn);

    /**
     * 根据输入的书籍类型集合查询对应的书籍类型集合
     * @param typeList 书籍集合
     * @return 结果
     */
    List<BookType> conversionTypeList(List<String> typeList);
}
